Main menu

Pages

Matchs en direct aujourd'hui 16e de finale coupe du monde 2026 calendrier du jour

 <div class="match-page">

  <div class="match-title">

    ⚽ MATCHS DU JOUR EN LIVE - COUPE DU MONDE 2026

  </div>


  <div class="match-subtitle" id="today-date"></div>


  <div id="match-container"></div>

</div>


<style>

body{

  font-family:Arial;

  background:#0f0f0f;

  color:#fff;

  margin:0;

}


.match-page{

  max-width:900px;

  margin:auto;

  padding:10px;

}


.match-title{

  text-align:center;

  background:#111;

  padding:12px;

  border-radius:10px;

  font-weight:bold;

  margin-bottom:6px;

}


.match-subtitle{

  text-align:center;

  font-size:13px;

  opacity:0.8;

  margin-bottom:12px;

}


.AY_Match{

  background:#111;

  margin:10px 0;

  padding:12px;

  border-radius:12px;

  border:1px solid #222;

}


.AY_Inner{

  display:flex;

  justify-content:space-between;

  align-items:center;

}


.MT_Team{

  width:30%;

  text-align:center;

}


.MT_Team img{

  width:50px;

  height:35px;

  border-radius:4px;

}


.MT_Data{

  width:40%;

  text-align:center;

}


.score{

  font-size:24px;

  font-weight:bold;

  color:#00ff99;

}


.status{

  padding:6px 12px;

  border-radius:20px;

  display:inline-block;

  font-weight:bold;

  margin-bottom:6px;

}


.upcoming{background:#1976d2;animation:pulse 1.2s infinite;}

.live{background:red;animation:blink 1s infinite;}

.finished{background:#444;}

.ht{background:#ff9800;}


@keyframes blink{50%{opacity:0.4}}

@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}


.minute{

  font-size:12px;

  opacity:0.8;

  margin-top:3px;

}


.action-btn{

  display:inline-block;

  margin-top:8px;

  padding:7px 14px;

  border-radius:20px;

  color:#fff;

  text-decoration:none;

  font-size:12px;

  background:#2196f3;

}

.action-btn.live{

  background:#ff9800;

}

</style>


<script>


document.addEventListener("DOMContentLoaded", () => {


const siteBase = "https://www.footballmavie.pro";


/* =========================

   DATE DU JOUR

========================= */

function setTodayDate(){

  const d = new Date();

  const options = { weekday:'long', year:'numeric', month:'long', day:'numeric' };

  document.getElementById("today-date").innerText =

    "📅 " + d.toLocaleDateString("fr-FR", options);

}


/* =========================

   MATCHS

========================= */

const matchs = [


  {

    equipe1:"Afrique du Sud",

    equipe2:"Canada",

    logo1:"https://flagcdn.com/w160/za.png",

    logo2:"https://flagcdn.com/w160/ca.png",

    score1:0,

    score2:0,

    start:"2026-06-28T19:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"afrique-du-sud-vs-canada-2026"

  },


  {

    equipe1:"Brésil",

    equipe2:"Japon",

    logo1:"https://flagcdn.com/w160/br.png",

    logo2:"https://flagcdn.com/w160/jp.png",

    score1:0,

    score2:0,

    start:"2026-06-29T13:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"bresil-vs-japon-2026"

  },


  {

    equipe1:"Allemagne",

    equipe2:"Paraguay",

    logo1:"https://flagcdn.com/w160/de.png",

    logo2:"https://flagcdn.com/w160/py.png",

    score1:0,

    score2:0,

    start:"2026-06-29T16:30:00",

    addedTime:5,

    kickoffDelay:0,

    article:"allemagne-vs-paraguay-2026"

  },


  {

    equipe1:"Pays-Bas",

    equipe2:"Maroc",

    logo1:"https://flagcdn.com/w160/nl.png",

    logo2:"https://flagcdn.com/w160/ma.png",

    score1:0,

    score2:0,

    start:"2026-06-29T21:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"pays-bas-vs-maroc-2026"

  },


  {

    equipe1:"Côte d’Ivoire",

    equipe2:"Norvège",

    logo1:"https://flagcdn.com/w160/ci.png",

    logo2:"https://flagcdn.com/w160/no.png",

    score1:0,

    score2:0,

    start:"2026-06-30T13:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"cote-ivoire-vs-norvege-2026"

  },


  {

    equipe1:"France",

    equipe2:"Suède",

    logo1:"https://flagcdn.com/w160/fr.png",

    logo2:"https://flagcdn.com/w160/se.png",

    score1:0,

    score2:0,

    start:"2026-06-30T17:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"france-vs-suede-2026"

  },


  {

    equipe1:"Mexique",

    equipe2:"Équateur",

    logo1:"https://flagcdn.com/w160/mx.png",

    logo2:"https://flagcdn.com/w160/ec.png",

    score1:0,

    score2:0,

    start:"2026-06-30T21:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"mexique-vs-equateur-2026"

  },


  {

    equipe1:"Angleterre",

    equipe2:"RD Congo",

    logo1:"https://flagcdn.com/w160/gb.png",

    logo2:"https://flagcdn.com/w160/cd.png",

    score1:0,

    score2:0,

    start:"2026-07-01T12:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"angleterre-vs-rd-congo-2026"

  },


  {

    equipe1:"Belgique",

    equipe2:"Sénégal",

    logo1:"https://flagcdn.com/w160/be.png",

    logo2:"https://flagcdn.com/w160/sn.png",

    score1:0,

    score2:0,

    start:"2026-07-01T16:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"belgique-vs-senegal-2026"

  },


  {

    equipe1:"États-Unis",

    equipe2:"Bosnie-Herzégovine",

    logo1:"https://flagcdn.com/w160/us.png",

    logo2:"https://flagcdn.com/w160/ba.png",

    score1:0,

    score2:0,

    start:"2026-07-01T20:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"usa-vs-bosnie-2026"

  },


  {

    equipe1:"Espagne",

    equipe2:"Autriche",

    logo1:"https://flagcdn.com/w160/es.png",

    logo2:"https://flagcdn.com/w160/at.png",

    score1:0,

    score2:0,

    start:"2026-07-02T15:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"espagne-vs-autriche-2026"

  },


  {

    equipe1:"Portugal",

    equipe2:"Croatie",

    logo1:"https://flagcdn.com/w160/pt.png",

    logo2:"https://flagcdn.com/w160/hr.png",

    score1:0,

    score2:0,

    start:"2026-07-02T19:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"portugal-vs-croatie-2026"

  },


  {

    equipe1:"Suisse",

    equipe2:"Algérie",

    logo1:"https://flagcdn.com/w160/ch.png",

    logo2:"https://flagcdn.com/w160/dz.png",

    score1:0,

    score2:0,

    start:"2026-07-02T23:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"suisse-vs-algerie-2026"

  },


  {

    equipe1:"Australie",

    equipe2:"Égypte",

    logo1:"https://flagcdn.com/w160/au.png",

    logo2:"https://flagcdn.com/w160/eg.png",

    score1:0,

    score2:0,

    start:"2026-07-03T14:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"australie-vs-egypte-2026"

  },


  {

    equipe1:"Argentine",

    equipe2:"Cap-Vert",

    logo1:"https://flagcdn.com/w160/ar.png",

    logo2:"https://flagcdn.com/w160/cv.png",

    score1:0,

    score2:0,

    start:"2026-07-03T18:00:00",

    addedTime:5,

    kickoffDelay:0,

    article:"argentine-vs-cap-vert-2026"

  },


  {

    equipe1:"Colombie",

    equipe2:"Ghana",

    logo1:"https://flagcdn.com/w160/co.png",

    logo2:"https://flagcdn.com/w160/gh.png",

    score1:0,

    score2:0,

    start:"2026-07-03T21:30:00",

    addedTime:5,

    kickoffDelay:0,

    article:"colombie-vs-ghana-2026"

},

];

  

 

 

/* =========================

   STATUS MATCH

========================= */

function getStatus(m){


  const now = new Date();

  const start = new Date(m.start);

  const realStart = new Date(start.getTime() + (m.kickoffDelay || 0) * 60000);

  const end = new Date(realStart.getTime() + (90 + (m.addedTime || 0)) * 60000);


  const diffStart = realStart - now;

  const diffEnd = end - now;


  if(diffStart > 0){

    let min = Math.floor(diffStart / 60000);

    return {

      text:`⚡ COMMENCE DANS ${min > 60 ? Math.floor(min/60)+"h "+(min%60)+"min" : min+"min"}`,

      cls:"upcoming"

    };

  }


  if(diffStart <= 0 && diffEnd > 0){

    let minute = Math.floor((now - realStart) / 60000);

    let display = minute >= 90 ? `90+${minute-90}’` : `${minute}’`;


    if(minute >= 45 && minute <= 50){

      return {text:"⏸ MI-TEMPS",cls:"ht",minute:"45’"};

    }


    return {text:"🔴 LIVE 🛑",cls:"live",minute:display};

  }


  return {text:"⚫ TERMINÉ ✔",cls:"finished"};

}


/* =========================

   RENDER

========================= */

function render(){


  const c = document.getElementById("match-container");

  c.innerHTML = "";


  matchs.forEach(m => {


    let status = getStatus(m);

    let time = new Date(m.start).toLocaleTimeString().slice(0,5);


    let link = (status.cls === "upcoming")

      ? siteBase

      : siteBase + "/articles/" + m.article + ".html";


    let btnText = (status.cls === "live")

      ? "🔴 LIVE 🛑"

      : (status.cls === "ht")

        ? "🔴 LIVE 🛑"

        : "📄 DÉTAILS";


    c.innerHTML += `

    <div class="AY_Match">


      <div class="AY_Inner">


        <div class="MT_Team">

          <img src="${m.logo1}">

          <div>${m.equipe1}</div>

        </div>


        <div class="MT_Data">


          <div class="status ${status.cls}">

            ${status.text}

          </div>


          ${status.minute ? `<div class="minute">${status.minute}</div>` : ""}


          <div class="score">${m.score1} - ${m.score2}</div>


          <div style="font-size:12px;opacity:0.8;margin-top:4px;">

            🕒 ${time}

          </div>


          <a class="action-btn ${status.cls === 'live' ? 'live' : ''}" href="${link}">

            ${btnText}

          </a>


        </div>


        <div class="MT_Team">

          <img src="${m.logo2}">

          <div>${m.equipe2}</div>

        </div>


      </div>


    </div>`;

  });

}


setTodayDate();

render();

setInterval(render, 10000);


});

</script>

Commentaires